home *** CD-ROM | disk | FTP | other *** search
/ CD School House 9 / CD School House 9.0 - Wayzata Technology (1994).iso / pc / dos / networks / tpapi / netware.pa1 < prev    next >
Text File  |  1992-03-02  |  11KB  |  237 lines

  1. {!R! FONT 15; FTMD 15; EXIT;}
  2.  
  3.  
  4. {***************************************************************************}
  5. {** Program : NETWARE                                                     **}
  6. {***************************************************************************}
  7. {** Version : 1.3             ** Started : 11/11/91  ** Ended :   /  /    **}
  8. {***************************************************************************}
  9. {******************************** Description ******************************}
  10. {***************************************************************************}
  11. {** OOP library for Netware API.                                          **}
  12. {**                                                                       **}
  13. {** This unit forms the lowest level object : NETWARE                     **}
  14. {**                                                                       **}
  15. {**                                                                       **}
  16. {***************************************************************************}
  17. {******************************** Information ******************************}
  18. {***************************************************************************}
  19. {** This units provides all the interfaces to the network shells and many **}
  20. {** misc routines.                                                        **}
  21. {**                                                                       **}
  22. {**                                                                       **}
  23. {**                                                                       **}
  24. {***************************************************************************}
  25.  
  26. {$I NETWARE.INC}
  27.  
  28. UNIT NETWARE;
  29.  
  30. INTERFACE
  31.  
  32. USES
  33.  
  34.   nwvar;
  35.  
  36. TYPE
  37.  
  38.   BufferNameType               = (Request, Receive);
  39.   BufferType                   = ARRAY [0 .. 520] OF BYTE;
  40.   ConnectionIDTableArrayType   = ARRAY [1 .. MaxSlotsInShell] OF ConnectionIDTableType;
  41.   FileServerNameTableArrayType = ARRAY [1 .. MaxSlotsInShell] OF Byte48ArrayType;
  42.  
  43.   pNetwareOBJ = ^NetwareOBJ;
  44.   NetwareOBJ  = object
  45.  
  46.     nwRequestBuffer         : BufferType;
  47.     nwReceiveBuffer         : BufferType;
  48.     nwReqOffset             : WORD;
  49.     nwRecOffset             : WORD;
  50.  
  51.     
  52.     CONSTRUCTOR Init;
  53.  
  54.     PROCEDURE   GetWrkstnEnv                  (VAR VersionString);
  55.  
  56.     FUNCTION    PrConnRequest                 (FunctionNumber : BYTE; ConnectionID : WORD) : WORD;
  57.  
  58.     FUNCTION    FileServiceRequest            (FunctionNumber : BYTE; VAR RequestBuffer; RequestBufferLength : WORD;
  59.                                                VAR ReceiveBuffer; ReceiveBufferLength : WORD) : WORD;
  60.  
  61.     FUNCTION    ServerReq                     (ServerNumber : WORD; FunctionNumber, SubFunctionNumber : BYTE) : WORD;
  62.  
  63.     PROCEDURE   ServerRequest                 (ServerNumber : WORD; FunctionNumber, SubFunctionNumber : BYTE);
  64.  
  65.     FUNCTION    ShellRequest                  (FunctionNumber : BYTE; VAR RequestBuffer, ReceiveBuffer) : WORD;
  66.  
  67.     FUNCTION    TableReq                      (FunctionNumber, SubFunctionNumber : BYTE; VAR TableAddr) : WORD;
  68.  
  69.     FUNCTION    NCPRequest                    (FunctionNumber : BYTE; RequestBufferLength : WORD; VAR RequestBuffer;
  70.                                                ReceiveBufferLength : WORD; VAR ReceiveBuffer) : WORD;
  71.  
  72.     FUNCTION    NCPConnRequest                (ConnectionID : WORD; FunctionNumber : BYTE; RequestBufferLength : WORD;
  73.                                                VAR RequestBuffer; ReceiveBufferLength : WORD; VAR ReceiveBuffer) : WORD;
  74.  
  75.     FUNCTION    ClrRelReq                     (FunctionNumber : BYTE; VAR Name) : WORD;
  76.  
  77.     PROCEDURE   SetClearReq                   (FunctionNumber : BYTE);
  78.  
  79.     FUNCTION    PhysRecReq                    (FunctionNumber : BYTE; Handle : WORD; ROffSet : LONGINT; RLength : LONGINT;
  80.                                                Directive : BYTE; TimeOut : WORD) : WORD;
  81.  
  82.     FUNCTION    SemaphorReq                   (FunctionNumber : BYTE; Handle : LONGINT; TimeOut : WORD) : WORD;
  83.  
  84.     FUNCTION    LockReq                       (FunctionNumber, Mode : BYTE; TimeOut : WORD) : WORD;
  85.  
  86.     FUNCTION    LogReq                        (FunctionNumber : BYTE; VAR LogName; Directive : BYTE; TimeOut : WORD) : WORD;
  87.  
  88.     FUNCTION    LPTCapReq                     (FunctionNumber, Device : BYTE) : WORD;
  89.  
  90.     FUNCTION    PrnSrvRequest                 (FunctionNumber : BYTE; BufferSize : WORD; VAR ReceiveBuffer;
  91.                                                PrinterDevice : BYTE) : WORD;
  92.  
  93.     FUNCTION    PrCapRequest                  (FunctionNumber, SubFunctionNumber : BYTE) : WORD;
  94.  
  95.     PROCEDURE   GetConnectionIDTable;
  96.  
  97.     PROCEDURE   GetDriveConnectionID;
  98.  
  99.     PROCEDURE   GetDriveFlagTable;
  100.  
  101.     PROCEDURE   GetDriveHandleTable;
  102.  
  103.     PROCEDURE   GetFileServerNameTable;
  104.  
  105.     FUNCTION    ScanShellTable                (FileServerAddress : ServerAddressType) : WORD;
  106.  
  107.     FUNCTION    GetFirstFreeSlotInShell : WORD;
  108.  
  109.     PROCEDURE   PutFileServerInShell          (ConnectionID : WORD);
  110.  
  111.     FUNCTION    NextOrderNumberInShell : WORD;
  112.  
  113.     PROCEDURE   SortShell                     (AddServerToShell : BOOLEAN);
  114.  
  115.     PROCEDURE   AddFileServerToShell          (ConnectionID : WORD; AddServerToShell : BOOLEAN;
  116.                                                FileServerAddress : ServerAddressType);
  117.  
  118.     PROCEDURE   RemoveFileServerFromShell     (ConnectionID : WORD; ClearShell : BOOLEAN);
  119.  
  120.     PROCEDURE   AddToFileServerNameTable      (ConnectionID : WORD; ServerName : ObjectNameType);
  121.  
  122.     {MISC FUNCTIONS}
  123.  
  124.     FUNCTION    UpperCaseNW                   (InputString : STRING) : STRING;
  125.  
  126.     PROCEDURE   InitRequestBuffer;
  127.  
  128.     PROCEDURE   InitReceiveBuffer;
  129.  
  130.     PROCEDURE   AddByte                       (ByteValue : BYTE);
  131.  
  132.     PROCEDURE   AddWord                       (WordValue : WORD);
  133.  
  134.     PROCEDURE   AddWordSwap                   (WordValue : WORD);
  135.  
  136.     PROCEDURE   AddLong                       (LongValue : LONGINT);
  137.  
  138.     PROCEDURE   AddLongSwap                   (LongValue : LONGINT);
  139.  
  140.     PROCEDURE   AddArray                      (VAR Buffer; BufferLength : WORD);
  141.  
  142.     PROCEDURE   AddString                     (InputString : STRING; Start : BYTE);
  143.  
  144.     PROCEDURE   AddChar                       (CharValue : CHAR);
  145.  
  146.     PROCEDURE   AddFiller                     (BufferLength : WORD);
  147.  
  148.     PROCEDURE   AddTotal                      (BufferName : BufferNameType);
  149.  
  150.     PROCEDURE   GetByte                       (VAR Buffer; Location : WORD);
  151.  
  152.     PROCEDURE   GetWord                       (VAR Buffer; Location : WORD);
  153.  
  154.     PROCEDURE   GetWordSwap                   (VAR Buffer; Location : WORD);
  155.  
  156.     PROCEDURE   GetLong                       (VAR Buffer; Location : WORD);
  157.  
  158.     PROCEDURE   GetLongSwap                   (VAR Buffer; Location : WORD);
  159.  
  160.     PROCEDURE   GetArray                      (VAR Buffer; Location, BufferLength : WORD);
  161.  
  162.     PROCEDURE   GetString                     (VAR Buffer; Location, BufferLength : WORD);
  163.  
  164.     FUNCTION    GetTotal                      (BufferName : BufferNameType) : WORD;
  165.  
  166.     PROCEDURE   SetTotal                      (BufferName : BufferNameType; Total : WORD);
  167.  
  168.     PROCEDURE   SetStart                      (Start : WORD);
  169.  
  170.     PROCEDURE   DoWordSwap                    (BufferName : BufferNameType; Location : WORD);
  171.  
  172.     PROCEDURE   DoLongSwap                    (BufferName : BufferNameType; Location : WORD);
  173.  
  174.     PROCEDURE   DoMoveArray                   (BufferName : BufferNameType; Source, Destination,
  175.                                                BufferLength : WORD);
  176.  
  177.     FUNCTION    WordSwap                      (InputWord : WORD) : WORD;
  178.  
  179.     FUNCTION    LongSwap                      (InputLong : LONGINT) : LONGINT;
  180.  
  181.     FUNCTION    CheckNetwareVersion           (MinimumVersion, MinimumSubVersion, MinimumRevision,
  182.                                                MinimumSFT, MinimumTTS : WORD) : WORD;
  183.  
  184.     FUNCTION    ReturnNetwareVersion          (VAR MinimumVersion, MinimumSubVersion, MinimumRevision,
  185.                                                MinimumSFT, MinimumTTS : WORD) : WORD;
  186.  
  187.     FUNCTION    IsV3Supported                 (ConnectionID : WORD) : WORD;
  188.  
  189.     FUNCTION    IsV22Supported                (ConnectionID : WORD) : WORD;
  190.  
  191.     FUNCTION    GetSearchOrderFromDriveLetter (Path : PathNameType; DriveLetter : CHAR) : WORD;
  192.  
  193.     FUNCTION    GetFileServerAddress          (ServerName : ObjectNameType;
  194.                                                VAR FileServerAddress : ServerAddressType) : BOOLEAN;
  195.  
  196.     PROCEDURE   ConvertNetworkNumber          (NetworkNumber : Byte4ArrayType; VAR OutputString : String8Type);
  197.  
  198.     PROCEDURE   ConvertNodeAddress            (NodeAddress : Byte6ArrayType; VAR OutputString : String12Type);
  199.  
  200.     FUNCTION    HexString                     (InputLong : LONGINT; Places : BYTE) : STRING;
  201.  
  202.     FUNCTION    PtrOfs                        (InPointer : POINTER; ArrayNum, ArraySize : WORD) : POINTER;
  203.  
  204.     PROCEDURE   SwapAsciiZ                    (InPPtr, InAPtr : POINTER; Len : BYTE; ToPascal : BOOLEAN);
  205.  
  206.     PROCEDURE   PtToAsciiZ                    (InPointer, Outpointer : POINTER; Len : BYTE);
  207.  
  208.     FUNCTION    LengthAsciiZ                  (VAR Buffer) : WORD;
  209.  
  210.     FUNCTION    AsciiZToStr                   (VAR Buffer; Max, StartPosition : WORD) : STRING;
  211.  
  212.     PROCEDURE   StrToAsciiZ                   (InputString : STRING; VAR OutputAsciiZ);
  213.  
  214.     FUNCTION    IntToStr                      (InputNumber : LONGINT) : STRING;
  215.  
  216.     FUNCTION    GetOriginalLetter             (OldDirectoryHandle : BYTE; ConnectionID : WORD;
  217.                                                VAR DriveLetter : CHAR) : WORD;
  218.  
  219.     FUNCTION    ValidateDots                  (Path : PathNameType) : BOOLEAN;
  220.  
  221.     FUNCTION    _NWMapWildPath                (Path : PathNameType; VAR OutPath : PathNameType) : BYTE;
  222.  
  223.     DESTRUCTOR  Done; VIRTUAL;
  224.  
  225.   END;
  226.  
  227. VAR
  228.  
  229.   FileServerNameTable     : ARRAY [1 .. MaxSlotsInShell] OF ObjectNameType;
  230.   ServerConnectionIDTable : ARRAY [1 .. MaxSlotsInShell] OF ServerIDTableType;
  231.   ConnectionIDTablePtr    : ^ConnectionIDTableArrayType;
  232.   FileServerNameTablePtr  : ^FileServerNameTableArrayType;
  233.   DriveConnectionTablePtr : ^Byte32ArrayType;
  234.   DriveFlagTablePtr       : ^Byte32ArrayType;
  235.   DriveHandleTablePtr     : ^Byte32ArrayType;
  236.  
  237.